package com.springboot.demo.common.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import org.apache.commons.lang3.StringUtils;

/**
 * @ClassName:EncryptUtils.java
 * @Package com.Utils
 * @Description:加密工具类
 * @Author JuoChiu
 * @Date  2017年11月15日下午2:50:39
 * @Version
 */
public class EncryptUtils {
	/**
     * 默认的密码字符串组合，apache校验下载的文件的正确性用的就是默认的这个组合
     */
    @SuppressWarnings("all")
	private static final char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };



    /**
     * @MethodName:
     * @Author JuoChiu
     * @Date 2017年11月15日 下午2:53:07
     * @Description:向getMD5方法传入一个你需要转换的原始字符串,将返回字符串的MD5码
     * @param str 原始字符串
     * @return 返回字符串的MD5码
     * @ReturnType String
     */
    @SuppressWarnings("all")
    public static String getMD5(String str) {
        if (StringUtils.isNotEmpty(str)) {
            MessageDigest digest = null;
            try {
                digest = MessageDigest.getInstance("MD5");
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
            if (digest != null) {
                byte[] bytes = str.getBytes();
                byte[] results = digest.digest(bytes);
                StringBuilder sb = new StringBuilder();
                for (byte result : results) {
                    // 将byte数组转化为16进制字符存入StringBuilder中
                    sb.append(String.format("%02x", result));
                }
                return sb.toString();
            }
        }
        return null;
    }
}
